﻿#region

using System;
using Newtonsoft.Json;

#endregion

namespace Megaplan.API.Models
{
    /// <summary>
    /// http://wiki.megaplan.ru/API_employee_card
    /// Карточка сотрудника
    /// </summary>
    public class EmployeeCard : Employee
    {
        /// <summary>
        /// Пол
        /// </summary>
        [JsonProperty]
        public string Gender { get; set; }

        /// <summary>
        /// Дата рождения
        /// </summary>
        [JsonProperty]
        public DateTime? Birthday { get; set; }

        /// <summary>
        /// Скрывать дату рождения
        /// </summary>
        [JsonProperty]
        public bool HideMyBirthday { get; set; }

        /// <summary>
        /// Возраст
        /// </summary>
        [JsonProperty]
        public string Age { get; set; }
        
        /// <summary>
        /// ICQ
        /// </summary>
        [JsonProperty]
        public string Icq { get; set; }
        
        /// <summary>
        /// Skype
        /// </summary>
        [JsonProperty]
        public string Skype { get; set; }

        /// <summary>
        /// Jabber
        /// </summary>
        [JsonProperty]
        public string Jabber { get; set; }

        /// <summary>
        /// Адрес
        /// </summary>
        [JsonProperty]
        public EmployeeAddress Address { get; set; }

        /// <summary>
        /// График работы
        /// </summary>
        [JsonProperty]
        public string Behaviour { get; set; }

        /// <summary>
        /// ИНН
        /// </summary>
        [JsonProperty]
        public string Inn { get; set; }

        /// <summary>
        /// Паспортные данные
        /// </summary>
        [JsonProperty]
        public string PassportData { get; set; }

        /// <summary>
        /// О себе
        /// </summary>
        [JsonProperty]
        public string AboutMe { get; set; }

        /// <summary>
        /// Начальники
        /// </summary>
        [JsonProperty]
        public People[] ChiefsWithoutMe { get; set; }

        /// <summary>
        /// Подчиненные
        /// </summary>
        [JsonProperty]
        public People[] SubordinatesWithoutMe { get; set; }

        /// <summary>
        /// Координаторы
        /// </summary>
        [JsonProperty]
        public People[] Coordinators { get; set; }

        /// <summary>
        /// Дата принятия на работу
        /// </summary>
        [JsonProperty]
        public DateTime? AppearanceDay { get; set; }

        /// <summary>
        /// Адрес большого фото сотрудника
        /// </summary>
        [JsonProperty]
        public string Photo { get; set; }

        /// <summary>
        /// Логин пользователя
        /// </summary>
        [JsonProperty]
        public string Login { get; set; }

        /// <summary>
        /// Работает ли сейчас сотрудник в Мегаплане
        /// </summary>
        [JsonProperty]
        public bool IsOnline { get; set; }

        /// <summary>
        /// Количество непрочитанных комментариев
        /// </summary>
        [JsonProperty]
        public int UnreadCommentsCount { get; set; }
    }
}

//////Поле	                       Тип	                                              Описание
//////Id	                       integer	                                          ID сотрудника
//////Name	                       string	                                          Полное имя
//////LastName	                   string	                                          Фамилия
//////FirstName	                   string	                                          Имя
//////MiddleName	               string	                                          Отчество
//////Gender	                   string	                                          Пол
//////Position	                   object(Id, Name)	                                  Должность
//////Department	               object (Id, Name)	                              Отдел
//////Birthday	                   date	                                              Дата рождения
//////HideMyBirthday	           boolean                                            Скрывать дату рождения
//////Age	                       integer	                                          Возраст
//////Phones	                   array<array> (Phone, PhoneType*, PhoneComment)	  Телефоны (версия 2011.4+)
//////Email	                       string	                                          E-mail
//////Icq	                       string	                                          ICQ
//////Skype	                       string	                                          Skype
//////Jabber	                   string	                                          Jabber
//////Address	                   object (Id, City, Street, House)	                  Address
//////Behaviour	                   string	                                          График работы
//////Inn	                       string	                                          ИНН
//////PassportData	               string	                                          Паспортные данные
//////AboutMe	                   string	                                          О себе
//////ChiefsWithoutMe	           array<object> (Id, Name)	                          Начальники
//////SubordinatesWithoutMe	       array<object> (Id, Name)	                          Подчиненные
//////Coordinators	               array<object> (Id, Name)	                          Координаторы
//////Status	                   object (Id, Name)	                              Статус
//////AppearanceDay	               date	                                              Дата принятия на работу
//////FireDay	                   date	                                              Дата увольнения
//////TimeCreated	               datetime	                                          Время создания
//////Avatar	                   string	                                          Адрес аватара сотрудника
//////Photo	                       string                                             Адрес большого фото сотрудника	
//////Login	                       string                                             Логин пользователя	
//////IsOnline	                   bool                                               Работает ли сейчас сотрудник в Мегаплане
//////UnreadCommentsCount	       integer                                            Количество непрочитанных комментариев